package com.tedu.bank_ems1.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * Author：毕龙
 * Date: 2024/6/26 9:41
 * 所有的方法都是静态的方法
 * 静态的方法在执行时虚拟机加载一次 就可以直接使用静态的方法
 * 不需要创建对象
 */
public class JDBCUtils {
    //Properties 是一个map集合 是键值对存在
    private static Properties prop = new Properties();

    static {
        //将配置文件中的所有数据加载到输入流中
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
        try {
            //键流中的数据以键值对存储到prop对象
            prop.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    public static Connection getConnection() throws Exception {
        //加载驱动
        //通过一个类的信息获取类对象 类加载
        Class.forName(prop.getProperty("driver"));

        //获取链接
        String url = prop.getProperty("url");
        String mysqlEmp = prop.getProperty("username");
        String mysqlPass = prop.getProperty("password");
        Connection conn = DriverManager.getConnection(url, mysqlEmp, mysqlPass);

        return conn;

    }


    //资源释放
    public static void release(ResultSet rs, Statement sta,Connection conn){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(sta!= null){
            try {
                sta.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(conn!= null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

    }


}
